{"version":3,"file":"static/chunks/pages/dashboard/[[...all]]-873502e5da10288f8d95.js","mappings":"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","sources":["webpack://_N_E/./src/components/Img/index.tsx","webpack://_N_E/./src/components/Layout/index.tsx","webpack://_N_E/./src/components/RegistrationForm/index.tsx","webpack://_N_E/./src/hooks/useRegister.ts","webpack://_N_E/./src/components/NewGalleryForm/index.tsx","webpack://_N_E/./src/components/NewGallery/index.tsx","webpack://_N_E/./src/components/Stripe/index.tsx","webpack://_N_E/./src/components/GalleryList/index.tsx","webpack://_N_E/./src/components/Account/index.tsx","webpack://_N_E/./src/components/Icons/Gallery.tsx","webpack://_N_E/./src/components/Icons/ScheduleMessage.tsx","webpack://_N_E/./src/components/Icons/Display.tsx","webpack://_N_E/./src/components/Icons/Guests.tsx","webpack://_N_E/./src/components/Icons/ManageQueue.tsx","webpack://_N_E/./src/components/Icons/Upload.tsx","webpack://_N_E/./src/components/Icons/SignShop.tsx","webpack://_N_E/./src/components/Icons/Downloading.tsx","webpack://_N_E/./src/components/Icons/GalleryDownload.tsx","webpack://_N_E/./src/components/GalleryDetail/View.tsx","webpack://_N_E/./src/components/GalleryDetail/index.tsx","webpack://_N_E/./src/hooks/useUpload.ts","webpack://_N_E/./src/hooks/useUpdateGallery.ts","webpack://_N_E/./src/components/EditGalleryForm/index.tsx","webpack://_N_E/./src/components/Icons/DeleteTac.tsx","webpack://_N_E/./src/components/Icons/ApproveTac.tsx","webpack://_N_E/./src/components/Icons/BlockUser.tsx","webpack://_N_E/./src/components/ManageTacs/View.tsx","webpack://_N_E/./src/components/ManageTacs/index.tsx","webpack://_N_E/./src/components/ResetPassword/View.tsx","webpack://_N_E/./src/components/ResetPassword/index.tsx","webpack://_N_E/./src/components/ChangePassword/View.tsx","webpack://_N_E/./src/components/ChangePassword/index.tsx","webpack://_N_E/./src/hooks/useInvite.ts","webpack://_N_E/./src/components/Invite/View.tsx","webpack://_N_E/./src/components/Invite/index.tsx","webpack://_N_E/./src/hooks/useCoHosts.ts","webpack://_N_E/./src/components/CoHostList/index.tsx","webpack://_N_E/./src/components/CoHosts/View.tsx","webpack://_N_E/./src/components/CoHosts/index.tsx","webpack://_N_E/./src/components/Dashboard/index.tsx","webpack://_N_E/./src/pages/dashboard/[[...all]].tsx","webpack://_N_E/./src/types/Features.ts","webpack://_N_E/?4b68","webpack://_N_E/./src/components/Account/Account.module.scss","webpack://_N_E/./src/components/CoHostList/CoHostList.module.scss","webpack://_N_E/./src/components/CoHosts/CoHost.module.scss","webpack://_N_E/./src/components/Dashboard/Dashboard.module.scss","webpack://_N_E/./src/components/EditGalleryForm/EditGalleryForm.module.scss","webpack://_N_E/./src/components/Form/Form.module.scss","webpack://_N_E/./src/components/GalleryDetail/GalleryDetail.module.scss","webpack://_N_E/./src/components/GalleryList/GalleryList.module.scss","webpack://_N_E/./src/components/Invite/Invite.module.scss","webpack://_N_E/./src/components/Layout/Layout.module.scss","webpack://_N_E/./src/components/ManageTacs/ManageTacs.module.scss","webpack://_N_E/./src/components/NewGalleryForm/NewGalleryForm.module.scss","webpack://_N_E/./src/components/RegistrationForm/RegistrationForm.module.scss","webpack://_N_E/./src/components/ResetPassword/ResetPassword.module.scss","webpack://_N_E/./src/components/Stripe/Stripe.module.scss"],"sourcesContent":["import React from \"react\";\nimport _ from \"lodash\";\n\nimport Rendition from \"../../types/Rendition\";\n\nexport interface ImgProps {\n renditions: Rendition[];\n className?: string;\n alt?: string;\n style?: any;\n size?: string;\n}\n\nexport const Img = (props: ImgProps) => {\n if (!props.renditions || !props.renditions.length) {\n return null;\n\n }\n const srcset = _.map(props.renditions, (rendition) => {\n return `${rendition.url} ${rendition.width}w`;\n });\n\n return (\n \n );\n};\n\nexport default Img;\n","import styles from \"./Layout.module.scss\";\nimport React, { ReactNode } from \"react\";\nimport classNames from \"classnames\";\n\ntype Props = {\n children?: ReactNode;\n classes?: string[];\n}\n\nconst Layout = (props: Props) => (\n
\n {props.children}\n
\n)\n\nexport default Layout;\n","import React, { useEffect } from 'react';\nimport styles from './RegistrationForm.module.scss';\nimport World from '../../world';\nimport useRegister from '../../hooks/useRegister';\nimport { LogoContainer } from '../LogoContainer';\nimport TextInput from '../TextInput';\nimport { Submit } from '../Submit';\nimport ActionLink from '../ActionLink';\nimport { Facebook } from \"../OIDC\";\n\ntype Props = {\n world: World;\n onSuccess: () => void;\n discount?: string;\n};\n\nexport const RegistrationForm = (props: Props) => {\n const { onChange, onSubmit, isPending, error } = useRegister(props.world, props.onSuccess, props.discount);\n\n useEffect(() => {\n (window as any).fbq('track', 'Lead');\n }, []);\n\n return (\n
\n {!props.discount ? : <>}\n\n {error && (\n

\n {error.message}\n

\n )}\n\n\t \n\t\t\t
\n\t\t\t
\n\t\t\t
\n\t\t\t
\n\n
\n \n\n \n\n \n\n \n \n\n
\n \n Login\n \n
\n );\n};\n\nexport default RegistrationForm;\n","import * as _ from \"lodash\";\nimport { useState } from \"react\";\nimport { useRouter } from \"next/router\";\nimport World from \"../world\";\nimport { MaybeAPIErr } from \"../api\";\nimport { ifBrowser } from \"../utils\";\n\ntype RegisterHook = {\n onChange: (e: React.FormEvent) => void;\n onSubmit: (e: React.FormEvent) => Promise;\n error: MaybeAPIErr;\n isPending: boolean;\n}\n\nfunction useRegister(world: World, onSuccess: () => void, discount?: string): RegisterHook {\n const [fullName, setFullName] = useState(\"\");\n const [email, setEmail] = useState(\"\");\n const [password, setPassword] = useState(\"\");\n const [error, setError] = useState(null);\n const [isPending, setIsPending] = useState(false);\n\n const router = useRouter();\n\n const onChange = (e: React.FormEvent) => {\n switch (e.currentTarget.name) {\n case \"full_name\":\n setFullName(e.currentTarget.value);\n break;\n case \"email\":\n setEmail(e.currentTarget.value);\n break;\n case \"password\":\n setPassword(e.currentTarget.value);\n break;\n }\n }\n\n const onSubmit = async (e: React.FormEvent) => {\n e.preventDefault();\n\n setIsPending(true);\n setError(null);\n\n const err = await world.register({\n full_name: fullName,\n email: email,\n password: password,\n discount: discount,\n });\n\n setIsPending(false);\n\n if (err) {\n setError(err);\n return;\n }\n\n (window as any).gtag('event', 'conversion', {'send_to': 'AW-10896578733/la0BCPG-ksUDEK2x8sso'});\n\n (window as any).fbq(\"init\", 1857456867824784, {\n em: world.host.email,\n });\n (window as any).fbq(\"track\", \"CompleteRegistration\", {}, {\n eventID: `${world.host.id()}`,\n });\n\n onSuccess();\n }\n\n return {\n onChange,\n onSubmit,\n error,\n isPending,\n };\n}\n\nexport default useRegister;\n","import styles from \"./NewGalleryForm.module.scss\";\nimport * as React from \"react\";\n\nimport LogoContainer from \"../LogoContainer\";\nimport ActionLink from \"../ActionLink\";\nimport TextInput from \"../TextInput\";\nimport Submit from \"../Submit\";\n\nexport interface NewGalleryFormProps {\n default_shipping_address?: string;\n onChange: (e: React.FormEvent) => void;\n onSubmit: (e: React.FormEvent) => void;\n onCancel: () => void;\n is_trial: boolean;\n error?: string;\n}\n\nexport const NewGalleryForm = (props: NewGalleryFormProps) => {\n return (\n
\n \n\n

You're almost done!

\n\n {props.error ? (\n

{props.error}

\n ) : (\n

Please name your gallery and enter your event date.

\n )}\n\n
\n {props.is_trial ? null : (\n \n )}\n {props.is_trial ? null : (\n \n )}\n\n \n \n\n \n cancel\n \n
\n );\n};\n\nexport default NewGalleryForm;\n","import React, { useState } from \"react\";\nimport _ from \"lodash\";\nimport { Elements } from \"@stripe/react-stripe-js\";\nimport { useRouter } from \"next/router\";\n\nimport { Product } from \"../../types/Product\";\nimport World from \"../../world\";\nimport NewGalleryForm from \"../NewGalleryForm\";\nimport Stripe from \"../Stripe\";\n\ntype Props = {\n world: World;\n stripePubKey: string;\n gallery_name?: string; // convert trial gallery\n}\n\nenum Step {\n Details = 1,\n Payment = 2,\n}\n\nexport interface State {\n display_name: string;\n date: string;\n step: Step;\n}\n\nconst NewGalleryController = (props: Props) => {\n const router = useRouter();\n const [displayName, setDisplayName] = useState(\"\");\n const [date, setDate] = useState(\"\");\n const [step, setStep] = useState(1);\n const [err, setErr] = useState(\"\");\n\n const handleChange = (e: React.FormEvent) => {\n switch (e.currentTarget.name) {\n case \"display_name\":\n setDisplayName(e.currentTarget.value);\n break;\n case \"date\":\n setDate(_.trim(e.currentTarget.value));\n break;\n }\n }\n\n const handleCancel = (): void => {\n router.push(\"/dashboard/[[...all]]\", \"/dashboard\");\n }\n\n const handleSubmitStep1 = async (e: React.FormEvent) => {\n e.preventDefault();\n\n if (displayName == \"\") {\n setErr(\"Please name your gallery\")\n return;\n }\n\n const dateRX = /^\\d\\d\\d\\d-\\d\\d-\\d\\d$/;\n if (!dateRX.test(date)) {\n setErr(\"Please enter a valid date like 2023-09-21\");\n return;\n }\n\n setStep(2);\n\n // AdWords\n (window as any).gtag('event', 'conversion', {'send_to': 'AW-10896578733/VKd9CO6-ksUDEK2x8sso'});\n // Facebook pixel\n (window as any).fbq(\"track\", \"InitiateCheckout\");\n }\n\n const handlePaid = async (paymentIntentID: string, dollarsPaid: number): Promise => {\n const [gallery, err] = await props.world.newGallery(\n props.world.host.name,\n {\n display_name: displayName,\n date: date,\n },\n paymentIntentID,\n );\n if (err) {\n return err.message;\n }\n // AdWords\n (window as any).gtag('event', 'conversion', {\n 'send_to': 'AW-10896578733/j3X6COu-ksUDEK2x8sso',\n 'value': dollarsPaid,\n 'currency': 'USD',\n 'transaction_id': `${gallery.id()}`,\n });\n // Facebook pixel\n (window as any).fbq(\"track\", \"Purchase\", {\n currency: \"USD\",\n value: dollarsPaid,\n }, {\n eventID: `${gallery.id()}`,\n });\n\n // Share a sale tracking pixel\n const img = window.document.createElement(\"img\");\n img.width = 1;\n img.height = 1;\n img.src = `https://www.shareasale.com/sale.cfm?tracking=${gallery.access_token}&amount=${dollarsPaid}&merchantID=110222&transtype=sale`;\n window.document.body.appendChild(img);\n const script = window.document.createElement(\"script\");\n script.defer = true;\n script.type = \"text/javascript\";\n script.src = \"https://www.dwin1.com/19038.js\";\n window.document.body.appendChild(script);\n\n router.push(\"/dashboard/[[...all]]\", \"/dashboard\");\n\n return \"\";\n }\n\n if (step === 1) {\n return \n }\n\n return \n}\n\nexport default NewGalleryController;\n","import React from \"react\";\nimport {\n loadStripe,\n StripeCardElementChangeEvent,\n Stripe as StripeClient,\n} from \"@stripe/stripe-js\";\nimport {\n CardElement,\n Elements,\n ElementsConsumer,\n} from \"@stripe/react-stripe-js\";\n\nimport World from \"../../world\";\nimport { Submit } from \"../Submit\";\nimport LogoContainer from \"../LogoContainer\";\nimport styles from \"./Stripe.module.scss\";\n\nexport interface Props {\n world: World;\n stripe_pub_key: string;\n onSuccess: (string, number) => Promise;\n}\n\nexport interface State {\n is_pending: boolean;\n payment_intent_client_secret?: string;\n price?: number;\n amount?: number;\n discount?: number;\n error?: string;\n}\n\nexport default class Stripe extends React.Component {\n private stripe: Promise\n\n constructor(props: Props) {\n super(props);\n\n this.state = {\n is_pending: true,\n };\n\n this.stripe = loadStripe(props.stripe_pub_key);\n\n props.world.createPaymentIntent()\n .then(([pi, err]) => {\n if (err) {\n this.setState({\n error: \"Currently unavailable\",\n is_pending: false,\n });\n return\n }\n this.setState({ \n payment_intent_client_secret: pi.client_secret,\n price: pi.price,\n amount: pi.amount,\n discount: pi.discount,\n is_pending: false,\n });\n });\n }\n\n public handleSubmit(stripe: any, elements: any): (e: React.FormEvent) => Promise {\n return async (e: React.FormEvent) => {\n if (!stripe || !elements) {\n return;\n }\n e.preventDefault();\n\n this.setState({ error: \"\", is_pending: true });\n \n const payload = await stripe.confirmCardPayment(this.state.payment_intent_client_secret, {\n payment_method: {\n card: elements.getElement(CardElement),\n },\n });\n\n if (payload.error) {\n this.setState({\n error: `Payment failed: ${payload.error.message}`,\n is_pending: false,\n });\n return;\n }\n\n const err = await this.props.onSuccess(payload.paymentIntent.id, this.state.amount / 100);\n if (err) {\n this.setState({error: err, is_pending: false});\n return;\n }\n this.setState({is_pending: false});\n };\n }\n\n public handleChange = (e: StripeCardElementChangeEvent) => {\n\n }\n\n private label(): string {\n if (!this.state.amount) {\n return \"\";\n }\n\n const dollars = this.state.amount / 100;\n let text = \"Pay \";\n\n // 2 decimal places unless it's a whole number\n if (Math.floor(dollars) === dollars) {\n text = `$${dollars}`;\n } else {\n text = `$${dollars.toFixed(2)}`;\n }\n\n if (this.state.discount) {\n text += ` (${this.state.discount}% Saved)`\n }\n\n return text;\n }\n\n public render() {\n return (\n
\n \n\n

Payment Info

\n\n
\n

{this.state.error}

\n\n \n \n {({ stripe, elements }) => (\n
\n \n\n
\n \n \n )}\n
\n
\n\n \n
\n );\n }\n}\n\n\n","import styles from \"./GalleryList.module.scss\";\nimport React from \"react\";\nimport _ from \"lodash\";\n\nimport Gallery from \"../../types/Gallery\";\nimport { ActionLink } from \"../ActionLink\";\n\nexport interface GalleryListProps {\n galleries: Gallery[];\n}\n\nconst GalleryItem = (gallery: Gallery) => {\n const id = _.last(gallery.name.split(\"/\"));\n let label = gallery.display_name;\n\n if (gallery.isTrial()) {\n label += \" (Trial)\"\n }\n\n return (\n
  • \n \n {label}\n \n
  • \n );\n}\n\n\nexport const GalleryList = (props: GalleryListProps) => {\n return (\n
    \n

    My Galleries

    \n
      \n {_.map(props.galleries, GalleryItem)}\n
    \n
    \n );\n}\n\nexport default GalleryList;\n","import React, {useState, useEffect} from \"react\";\nimport _ from \"lodash\";\n\nimport styles from \"./Account.module.scss\";\nimport Host from \"../../types/Host\";\nimport World from \"../../world\";\n\nimport { LogoContainer } from \"../LogoContainer\";\nimport { ActionLink } from \"../ActionLink\";\nimport GalleryList from \"../GalleryList\";\nimport Gallery from \"../../types/Gallery\";\n\nexport interface AccountProps {\n host: Host;\n world: World;\n onLogout: () => void;\n is_trial?: boolean;\n}\n\nexport const Account = (props: AccountProps) => {\n const [galleries, setGalleries] = useState(_.values(props.world.galleries));\n useEffect(() => {\n let active = true;\n\n (async () => {\n const [galleries, err] = await props.world.fetchAllGalleries(props.host.name);\n if (err) {\n return;\n }\n\n if (!active) {\n return;\n }\n\n setGalleries(galleries);\n })();\n\n return () => {\n active = false;\n };\n }, []);\n \n\n return (\n
    \n \n\n {\n (function(){\n let interestCount = 0;\n let noPro = true;\n localStorage.setItem('noPro', JSON.stringify(noPro));\n localStorage.setItem('interestCount', JSON.stringify(interestCount));\n }())\n }\n\n

    Email: {props.host.email}

    \n\n

    Name: {props.host.full_name}

    \n\n \n\n
    \n \n {props.is_trial ? \"unlock trial gallery\" : \"purchase a new gallery\" }\n \n
    \n\n
    \n \n View User Guide\n \n
    \n\n
    \n \n Logout\n \n
    \n
    \n );\n};\n\nexport default Account;\n","\nimport * as React from \"react\";\n\nexport interface GalleryIconProps {}\n\nexport const GalleryIcon = (props: GalleryIconProps) => {\n return ( \n \n );\n};\n","\nimport * as React from \"react\";\n\nexport interface ScheduleMessageIconProps {}\n\nexport const ScheduleMessageIcon = (props: ScheduleMessageIconProps) => { return ( \n\t\n\t\n\n\n\t\n\t\n\n\n\t\n\t\n\t\n\t\n\t\n\n\n );\n};","import * as React from \"react\";\n\nexport interface DisplayIconProps {\n className?: string;\n onClick?: () => void;\n}\n\nexport const DisplayIcon = (props: DisplayIconProps) => {\n const style = props.onClick ? {cursor: \"pointer\"} : null;\n\n return (\n \n\n\n\n\n\n \n );\n};\n\nexport default DisplayIcon;\n","\nimport * as React from \"react\";\n\nexport interface GuestsIconProps {}\n\nexport const GuestsIcon = (props: GuestsIconProps) => { return ( \n\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\n\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\n\n\n );\n};","import * as React from \"react\";\n\nexport interface ManageQueueIconProps {\n className?: string;\n onClick?: () => void;\n}\n\nexport const ManageQueueIcon = (props: ManageQueueIconProps) => {\n const style = props.onClick ? {cursor: \"pointer\"} : null;\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n","import * as React from \"react\";\n\nexport interface UploadIconProps {}\n\nexport const UploadIcon = (props: UploadIconProps) => {\n return (\n \n \n\n\n\t\n\t\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\n\n\n\n\n );\n};\n","import * as React from \"react\";\n\nexport interface SignShopIconProps {}\n\nexport const SignShopIcon = (props: SignShopIconProps) => {\n return (\n\n\n\t\n\t\n\n\n );\n};\n\n","import * as React from \"react\";\n\nexport interface DownloadingIconProps {}\n\nexport const DownloadingIcon = (props: DownloadingIconProps) => {\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n","import * as React from \"react\";\n\nexport interface GalleryDownloadIconProps {}\n\nexport const GalleryDownloadIcon = (props: GalleryDownloadIconProps) => {\n return (\n\n\n\t\n\n\n\n\n\n );\n};\n\n","\n// TODO invite guests form\nimport styles from \"./GalleryDetail.module.scss\";\nimport * as React from \"react\";\n\nimport { ActionLink } from \"../ActionLink\";\nimport { GalleryIcon } from \"../Icons/Gallery\";\nimport { ScheduleMessageIcon } from \"../Icons/ScheduleMessage\";\nimport { DisplayIcon } from \"../Icons/Display\";\nimport { GuestsIcon } from \"../Icons/Guests\";\nimport { ManageQueueIcon } from \"../Icons/ManageQueue\";\nimport { UploadIcon } from \"../Icons/Upload\";\nimport { SignShopIcon } from \"../Icons/SignShop\";\nimport { DownloadingIcon } from \"../Icons/Downloading\";\nimport { GalleryDownloadIcon } from \"../Icons/GalleryDownload\";\n\n/** GalleryDetail properties. */\nexport interface GalleryDetailProps {\n id: number;\n host_id: number;\n display_name: string;\n avatar: string;\n date: string;\n short_url: string;\n upload_url: string;\n live_url?: string;\n phone?: string;\n hashtag?: string;\n onArchive: () => void;\n is_archiving: boolean;\n is_super_host: boolean;\n tourGallery: boolean;\n tourLive: boolean;\n tourQueue: boolean;\n}\n\nexport const GalleryDetail = (props: GalleryDetailProps) => {\n const parts = props.date.split(\"-\");\n const months = [\n \"\",\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ];\n const date = `${months[parseInt(parts[1])]} ${parseInt(parts[2], 10)}, ${parts[0]}`\n \n return (\n
    \n
    \n
    \n \n

    \n {props.display_name}\n

    {date}

    \n

    \n
    \n \n

    \n \n edit details\n \n

    \n {props.is_super_host && (

    \n manage cohosts\n

    )}\n
    \n \n \n
    \n
    \n

    Your Gallery’s Number

    \n

    {props.phone}

    \n

    \n \n share number\n \n

    \n
    \n\n
    \n

    Your Gallery’s Link

    \n

    {props.short_url.replace(\"http://\", \"\")}

    \n

    \n \n share link\n \n

    \n
    \n
    \n\n
    \n \n \n \n \n \n View Gallery\n {props.tourGallery && }\n \n \n {props.live_url && (\n \n \n \n \n Display Live\n {props.tourLive && }\n )\n }\n\n {props.live_url && (\n \n \n \n \n Schedule Messages\n {props.tourLive && }\n )\n }\n \n \n \n \n \n Manage Guests\n {props.tourQueue && }\n \n \n \n \n \n \n \n \n Upload Photos\n {props.tourGallery && }\n \n \n \n \n \n \n Maintain Queue\n {props.tourQueue && }\n \n \n
    \n \n
    \n \n \n

    Visit Sign Shop

    \n
    \n \n
    {props.is_archiving ? (\n \n
    \n \n
    We're preparing your gallery. This may take several seconds. When this message leaves your gallery will begin downloading. A download link will also be emailed to you.
    \n
    \n
    \n ) : (\n \n \n

    download gallery

    \n
    \n )}\n
    \n
    \n \n \n
    \n \n View User Guide\n \n
    \n
    \n );\n};\n\nexport default GalleryDetail;\n","import * as React from \"react\";\n\nimport Gallery from \"../../types/Gallery\";\n\nimport World from \"../../world\";\nimport GalleryDetail from \"./View\";\n\nexport interface Props {\n name: string;\n world: World;\n}\n\nexport interface State {\n is_archiving: boolean;\n tourLive: boolean;\n tourGallery: boolean;\n tourQueue: boolean;\n}\n\nexport default class GalleryDetailController extends React.Component {\n\n constructor(props: Props) {\n super(props);\n\n this.state = {\n is_archiving: false,\n tourLive: false,\n tourGallery: false,\n tourQueue: false,\n };\n }\n \n componentDidMount() {\n this.tour();\n }\n\n tour() {\n if (!this.props.world.host.tour) {\n return;\n }\n\n if (!this.props.world.host.has_tacced) {\n this.setState({\n tourGallery: true,\n });\n return;\n }\n\n if (!this.props.world.host.has_experienced_live) {\n this.setState({\n tourLive: true,\n });\n return;\n }\n\n if (!this.props.world.host.has_managed_queue) {\n this.setState({\n tourQueue: true,\n });\n return;\n }\n }\n\n handleArchive = () => {\n this.props.world.archive(this.props.name)\n .then(([url, err]) => {\n this.setState({ is_archiving: false });\n if (err) {\n // TODO\n console.log(err);\n return;\n }\n location.replace(url);\n });\n this.setState({ is_archiving: true });\n }\n\n render() {\n const gallery = this.props.world.galleries[this.props.name];\n\n if (!gallery) {\n // TODO spinner\n return null;\n }\n const shortURL = this.props.world.shortURL(gallery.access_token);\n\tconst isSuperHost = gallery.hostID() === this.props.world.host.id();\n\n const props = {\n id: gallery.id(),\n host_id: gallery.hostID(),\n display_name: gallery.display_name,\n avatar: gallery.avatar,\n date: gallery.date,\n short_url: shortURL,\n live_url: shortURL + \"?mode=live\",\n upload_url: `${location.protocol}//${location.host}/up/${gallery.access_token}`,\n phone: gallery.prettyPhone(),\n onArchive: this.handleArchive,\n is_archiving: this.state.is_archiving,\n tourGallery: this.state.tourGallery,\n tourLive: this.state.tourLive,\n tourQueue: this.state.tourQueue,\n\t is_super_host: isSuperHost,\n };\n\n return \n }\n}\n","import * as _ from \"lodash\";\nimport { useState, useEffect } from \"react\";\nimport World from \"../world\";\nimport { MaybeAPIErr } from \"../api\";\n\ntype UploadHook = {\n url: string;\n err: string;\n onChange: (e: React.FormEvent) => void;\n isPending: boolean;\n}\n\nfunction useUpload(world: World): UploadHook {\n const [url, setURL] = useState(\"\");\n const [err, setErr] = useState(\"\");\n const [isPending, setIsPending] = useState(false);\n\n const onChange = async (e: React.FormEvent) => {\n if (!e.currentTarget.files.length) {\n return;\n }\n const formData = new FormData();\n formData.append(\"file\", e.currentTarget.files[0]);\n\n setIsPending(true);\n\n const [postURL, err] = await world.getUploadURL();\n if (err) {\n setIsPending(false);\n setErr(err.message);\n return;\n }\n\n const response = await fetch(postURL, {\n method: \"POST\",\n body: formData,\n });\n const body = await response.json();\n\n setIsPending(false);\n\n if (response.status >= 300 || !body.success || !body.result.variants.length) {\n // TODO report and show\n console.log(body);\n return;\n }\n\n setURL(body.result.variants[0]);\n };\n\n return {\n url,\n err,\n onChange,\n isPending,\n };\n}\n\nexport default useUpload;\n","import _ from \"lodash\";\nimport { useState } from \"react\";\nimport { useRouter } from \"next/router\";\nimport World from \"../world\";\nimport Gallery from \"../types/Gallery\";\nimport { MaybeAPIErr } from \"../api\";\nimport useUpload from \"./useUpload\";\n\ntype UpdateGalleryHook = {\n avatar: string;\n displayName: string;\n date: string;\n onChangeDisplayName: (e: React.FormEvent) => void;\n onChangeDate: (e: React.FormEvent) => void;\n onChangeAvatar: (e: React.FormEvent) => void;\n onSubmit: (e: React.FormEvent) => Promise;\n err: string;\n isPending: boolean;\n isAvatarPending: boolean;\n}\n\nfunction useUpdateGallery(world: World, gallery: Gallery): UpdateGalleryHook {\n const router = useRouter();\n const [displayName, setDisplayName] = useState(gallery.display_name);\n const [date, setDate] = useState(gallery.date);\n const [err, setErr] = useState(\"\");\n const [isPending, setIsPending] = useState(false);\n const {url: newAvatar, onChange: onChangeAvatar, err: errAvatar, isPending: isAvatarPending} = useUpload(world);\n\n const onChangeDisplayName = (e: React.FormEvent) => {\n setDisplayName(e.currentTarget.value);\n };\n\n const onChangeDate = (e: React.FormEvent) => {\n setDate(e.currentTarget.value);\n };\n\n const onSubmit = async (e: React.FormEvent) => {\n e.preventDefault();\n\n setIsPending(true);\n\n const patch: any = {};\n\n if (displayName && displayName !== gallery.display_name) {\n patch.display_name = displayName;\n }\n\n if (date && date !== gallery.date) {\n patch.date = date;\n }\n\n if (newAvatar && newAvatar !== gallery.avatar) {\n patch.avatar = newAvatar;\n }\n\n const err = await world.updateGallery(gallery.name, patch);\n\n setIsPending(false);\n\n if (err) {\n setErr(err.message)\n return;\n }\n\n router.push(\"/dashboard/[[...all]]\", `/dashboard/galleries/${gallery.id()}`);\n };\n\n return {\n avatar: newAvatar || gallery.avatar,\n displayName,\n date,\n err,\n isPending: isPending || isAvatarPending,\n isAvatarPending,\n onChangeDisplayName,\n onChangeDate,\n onChangeAvatar,\n onSubmit,\n }\n};\n\nexport default useUpdateGallery;\n","import React, { useState, useEffect } from \"react\";\nimport form from \"../Form/Form.module.scss\";\nimport styles from \"./EditGalleryForm.module.scss\";\n\nimport World from \"../../world\";\nimport Gallery from \"../../types/Gallery\";\nimport LogoContainer from \"../LogoContainer\";\nimport ActionLink from \"../ActionLink\";\nimport TextInput from \"../TextInput\";\nimport Submit from \"../Submit\";\n\nimport useUpdateGallery from \"../../hooks/useUpdateGallery\";\n\ntype WrapperProps = {\n world: World;\n name: string;\n};\n\nconst Wrapper = (props: WrapperProps) => {\n const [gallery, setGallery] = useState(props.world.galleries[props.name]);\n const [err, setErr] = useState(\"\");\n\n useEffect(() => {\n if (gallery) {\n return;\n }\n let active = true;\n\n (async function() {\n const [name, err] = await props.world.getGallery(props.name);\n if (err) {\n setErr(err.message);\n return;\n }\n if (active) {\n setGallery(props.world.galleries[name]);\n }\n }())\n\n return () => {\n active = false;\n };\n }, []);\n\n if (gallery) {\n return \n }\n\n if (err) {\n return (\n <>\n

    Failed to load

    \n

    {err}

    \n \n );\n }\n\n return

    Loading...

    \n}\n\ntype Props = {\n world: World;\n gallery: Gallery;\n};\n\nconst EditGalleryForm = (props: Props) => {\n const {\n isPending,\n isAvatarPending,\n err,\n avatar,\n onChangeDisplayName,\n onChangeDate,\n onChangeAvatar,\n onSubmit,\n } = useUpdateGallery(props.world, props.gallery);\n\n return (\n
    \n \n\n {err && (\n

    {err}

    \n )}\n\n \n\n
    \n\n
    \n {isAvatarPending ?

    Working...

    : (\n \n )}\n
    \n\n \n\n \n\n \n \n\n \n cancel\n \n
    \n );\n};\n\nexport default Wrapper;\n","import * as React from \"react\";\nimport { IconProps } from \"./\";\n\nexport const DeleteTacIcon = (props: IconProps) => {\n const style = props.onClick ? {cursor: 'pointer'} : null\n\n return (\n \n \n \n \n \n \n \n );\n};\n","import * as React from \"react\";\nimport { IconProps } from \"./\";\n\nexport const ApproveTacIcon = (props: IconProps) => {\n const style = props.onClick ? {cursor: 'pointer'} : null\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n );\n};\n","import * as React from \"react\";\nimport { IconProps } from \"./\";\n\nexport const BlockUserIcon = (props: IconProps) => {\n const style = props.onClick ? {cursor: 'pointer'} : null\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n","import React from \"react\";\nimport _ from \"lodash\";\nimport classnames from \"classnames\";\nimport styles from \"./ManageTacs.module.scss\";\nimport Tac from \"../../types/Tac\";\nimport Guest from \"../../types/Guest\";\nimport LogoContainer from \"../LogoContainer\";\nimport ActionLink from \"../ActionLink\";\nimport { DeleteTacIcon } from \"../Icons/DeleteTac\";\nimport { ApproveTacIcon } from \"../Icons/ApproveTac\";\nimport { BlockUserIcon } from \"../Icons/BlockUser\";\nimport Img from '../Img'\n\nexport interface ManageTacsProps {\n gallery_display_name: string;\n tacs: ManageTacItemProps[];\n tour?: boolean;\n}\n\nexport interface ManageTacItemProps {\n tac: Tac;\n is_quarantined: boolean;\n is_low_res: boolean;\n guest: Guest;\n onDelete: () => void;\n onBlock: () => void;\n onApprove: () => void;\n}\n\nexport const ManageTacItem = (props: ManageTacItemProps) => {\n const classes = classnames(styles['manage-tacs__item'], {\n [styles['manage-tacs__item--quarantined']]: props.is_quarantined && !props.is_low_res,\n [styles['manage-tacs__low-res--quarantined']]: props.is_quarantined && props.is_low_res,\n });\n\n return (\n
  • \n
    \n

    \n Phone Number:\n { props.guest.prettyPhone() }\n

    \n\n

    \n Name:\n {props.guest.full_name}\n

    \n
    \n\n
    \n {props.tac.image && (props.tac.image.optimized || props.tac.image.original) && (\n \n )}\n {props.tac.note && props.tac.note.text && (\n

    {props.tac.note.text}

    \n )}\n\n
    \n \n
    \n
    \n \n
    Block
    Sender
    \n
    \n\n \n YES
    BLOCK \n
    \n
    \n \n \n \n Delete
    remove forever\n
    \n\n {props.is_quarantined &&\n \n \n Approve
    send to gallery\n
    \n }\n
    \n
    \n
  • \n );\n};\n\nexport const ManageTacs = (props: ManageTacsProps) => {\n return (\n
    \n \n\n

    Submissions to {props.gallery_display_name}

    \n\n {props.tour && (\n
    \n

    Here you can approve tacs that were caught in our content filters, delete invidual tacs, or block guests forever.

    \n

    Looks like somebody sent in a questionable tac. Approve it to see it in your gallery or delete it for good.

    \n
    \n )}\n\n
      \n {_.map(props.tacs, (tac) => {\n if (tac.guest.blocked || tac.tac.state === \"DELETED\") {\n return null;\n }\n return \n })}\n
    \n
    \n );\n};\n","import * as React from \"react\";\nimport * as _ from \"lodash\";\n\nimport Gallery from \"../../types/Gallery\";\nimport Features from \"../../types/Features\";\nimport Guest from \"../../types/Guest\";\nimport Tac from \"../../types/Tac\";\nimport World from \"../../world\";\nimport { ManageTacs } from \"./View\";\n\nexport interface Props {\n gallery_name: string;\n world: World;\n}\n\nexport interface State {\n gallery: Gallery;\n guests: Guest[];\n tacs: Tac[];\n tour?: boolean;\n}\n\nexport default class ManageTacsController extends React.Component {\n private is_dead: boolean;\n private unlisten: () => void;\n private unwatch: () => void;\n private features: Features;\n private hasQuarantined: boolean;\n\n constructor(props: Props) {\n super(props);\n\n this.features = new Features();\n\n this.unlisten = props.world.listen(() => {\n this.setState({\n gallery: props.world.galleries[props.gallery_name],\n guests: props.world.listGalleryGuests(props.gallery_name),\n tacs: props.world.listGalleryTacs(props.gallery_name),\n });\n });\n\n props.world.fetchAllTacs(props.gallery_name);\n\n const gallery = props.world.galleries[props.gallery_name];\n\n if (gallery) {\n this.unwatch = props.world.watch(gallery.name, gallery.access_token);\n this.state = {\n gallery,\n guests: props.world.listGalleryGuests(props.gallery_name),\n tacs: props.world.listGalleryTacs(props.gallery_name),\n };\n // this.tour();\n return;\n }\n\n props.world.getGallery(props.gallery_name)\n .then(([name, err]) => {\n if (err) {\n throw err;\n }\n if (this.is_dead) {\n return;\n }\n this.unwatch = props.world.watch(name, gallery.access_token);\n this.setState({\n gallery: props.world.galleries[name],\n });\n this.tour();\n })\n .catch((err: Error) => {\n // TODO\n console.log(err);\n });\n }\n\n componentWillUnmount() {\n this.unlisten();\n\n if (this.unwatch) {\n this.unwatch();\n }\n this.is_dead = true;\n }\n\n handleLogout = () => {\n this.props.world.logout();\n }\n\n async tour() {\n const should = (\n this.props.world.host.tour\n && !this.props.world.host.has_managed_queue\n );\n if (!should) {\n return;\n }\n \n const [guest, err] = await this.props.world.createGuest(\n this.state.gallery.name,\n {\n full_name: \"Joe Guest\",\n },\n );\n if (err) {\n // TODO\n console.log(err);\n return;\n }\n await this.props.world.createTac(\n this.state.gallery.id(),\n \"https://storage.googleapis.com/public.tacboard.com/img/example1.jpg\",\n \"Gross, what an ugly dress\",\n guest,\n );\n this.setState({tour: true});\n }\n\n finishTour() {\n if (this.props.world.host.tour && !this.props.world.host.has_managed_queue) {\n this.props.world.updateHost(this.props.world.host.name, {\n has_managed_queue: true,\n });\n this.setState({\n tour: false,\n });\n }\n }\n\n render() {\n if (!this.state.gallery) {\n // TODO spinner\n return null;\n }\n const quarantineAll = this.state.gallery.moderation === \"manual\";\n\n const tacs = _.map(this.state.tacs, (tac) => {\n const guest = this.props.world.guests[tac.guest()];\n let isQuarantined = (quarantineAll || this.features.quarantine(tac)) && tac.state !== \"APPROVED\";\n\n if (!guest) {\n return null;\n }\n if (!this.hasQuarantined && isQuarantined) {\n this.hasQuarantined = true;\n }\n\n return {\n tac,\n guest,\n is_low_res: this.features.isLowRes(tac),\n is_quarantined: isQuarantined,\n onDelete: () => {\n this.props.world.deleteTac(tac.name);\n this.finishTour();\n },\n onBlock: () => {\n this.props.world.blockGuest(guest.name);\n this.finishTour();\n },\n onApprove: () => {\n this.props.world.approveTac(tac.name);\n this.finishTour();\n },\n };\n });\n\n const props = {\n // remove nulls (guests not yet received)\n tacs: _.compact(tacs),\n gallery_display_name: this.state.gallery.display_name,\n tour: this.state.tour && this.hasQuarantined,\n\n };\n\n return \n }\n}\n","import React from \"react\";\nimport { LogoContainer } from \"../LogoContainer\"\nimport { ActionLink } from \"../ActionLink\"\nimport TextInput from \"../TextInput\"\nimport { Submit } from \"../Submit\"\nimport styles from \"../Form/Form.module.scss\";\n\nexport interface ResetPasswordFormProps {\n onChange: (e: React.FormEvent) => void;\n onSubmit: (e: React.FormEvent) => void;\n is_pending: boolean;\n error?: string;\n}\n\nexport const ResetPasswordForm = (props: ResetPasswordFormProps) => {\n return (\n
    \n \n\n {props.error && (\n

    {props.error}

    \n )}\n\n
    \n \n\n \n \n\n \n cancel\n \n
    \n );\n};\n\nexport default ResetPasswordForm;\n","import React from \"react\";\nimport World from \"../../world\";\nimport ResetPasswordForm from \"./View\";\nimport styles from \"./ResetPassword.module.scss\";\n\nexport interface Props {\n world: World;\n}\n\nexport interface State {\n email: string;\n sent: boolean;\n is_pending: boolean;\n error?: string;\n}\n\nexport default class ResetPasswordFormController extends React.Component {\n constructor(props: Props) {\n super(props);\n\n this.state = {\n email: \"\",\n sent: false,\n is_pending: false,\n };\n }\n\n public handleChange = (e: React.FormEvent) => {\n switch (e.currentTarget.name) {\n case \"email\":\n this.setState({\n email: e.currentTarget.value,\n });\n break;\n }\n }\n\n public handleSubmit = async (e: React.FormEvent) => {\n e.preventDefault();\n this.setState({\n is_pending: true,\n });\n const err = await this.props.world.resetPassword(this.state.email);\n if (err) {\n this.setState({\n error: err.message,\n is_pending: false,\n });\n return;\n }\n this.setState({\n sent: true,\n });\n }\n\n render() {\n if (this.state.sent) {\n return (\n
    \n

    Check your email

    \n
    \n );\n }\n const props = {\n onChange: this.handleChange,\n onSubmit: this.handleSubmit,\n is_pending: this.state.is_pending,\n error: this.state.error,\n };\n\n return (\n \n );\n }\n}\n","import React from \"react\";\nimport styles from \"../Form/Form.module.scss\";\nimport { LogoContainer } from \"../LogoContainer\";\nimport TextInput from \"../TextInput\";\nimport { Submit } from \"../Submit\";\n\nexport interface ChangePasswordFormProps {\n onChange: (e: React.FormEvent) => void;\n onSubmit: (e: React.FormEvent) => void;\n is_pending: boolean;\n error?: string;\n}\n\nexport const ChangePasswordForm = (props: ChangePasswordFormProps) => {\n return (\n
    \n \n\n {props.error && (\n

    {props.error}

    \n )}\n\n
    \n \n\n \n \n
    \n );\n};\n\nexport default ChangePasswordForm;\n","import qs from \"querystring\";\nimport React from \"react\";\nimport _ from \"lodash\";\n\nimport World from \"../../world\";\nimport ChangePasswordForm from \"./View\";\n\nexport interface Props {\n world: World;\n}\n\nexport interface State {\n email: string;\n password: string;\n secret: string;\n is_pending: boolean;\n error?: string;\n}\n\nexport default class ChangePasswordFormController extends React.Component {\n constructor(props: Props) {\n super(props);\n\n const query = qs.parse(location.search.substring(1));\n // TODO validate email and password\n // TODO pull state from url and clean the url (currently infinite loop)\n\n this.state = {\n email: _.isArray(query.email) ? _.first(query.email) : query.email,\n password: \"\",\n secret: _.isArray(query.rt) ? _.first(query.rt) : query.rt,\n is_pending: false,\n };\n }\n\n public handleChange = (e: React.FormEvent) => {\n switch (e.currentTarget.name) {\n case \"password\":\n this.setState({\n password: e.currentTarget.value,\n });\n break;\n }\n }\n\n public handleSubmit = async (e: React.FormEvent) => {\n e.preventDefault();\n this.setState({\n is_pending: true,\n });\n const err = await this.props.world.changePassword({\n email: this.state.email,\n password: this.state.password,\n secret: this.state.secret,\n });\n if (err) {\n this.setState({\n error: err.message,\n is_pending: false,\n });\n return;\n }\n this.setState({\n is_pending: false,\n });\n // TODO router when functional\n window.location.href = \"/dashboard\";\n }\n\n render() {\n const props = {\n onChange: this.handleChange,\n onSubmit: this.handleSubmit,\n is_pending: this.state.is_pending,\n error: this.state.error,\n };\n\n return (\n \n );\n }\n}\n","import * as _ from \"lodash\";\nimport { useState } from \"react\";\nimport { useRouter } from \"next/router\";\nimport World from \"../world\";\nimport { MaybeAPIErr } from \"../api\";\n\ntype InviteHook = {\n onChange: (e: React.FormEvent) => void;\n onSubmit: (e: React.FormEvent) => Promise;\n error: MaybeAPIErr;\n isPending: boolean;\n}\n\nfunction useInvite(world: World, galleryName: string, galleryID: number): InviteHook {\n const [fullName, setFullName] = useState(\"\");\n const [phone, setPhone] = useState(\"\");\n const [error, setError] = useState(null);\n const [isPending, setIsPending] = useState(false);\n\n const router = useRouter();\n\n const onChange = (e: React.FormEvent) => {\n switch (e.currentTarget.name) {\n case \"full_name\":\n setFullName(e.currentTarget.value);\n break;\n case \"phone\":\n setPhone(e.currentTarget.value);\n break;\n }\n }\n\n const onSubmit = async (e: React.FormEvent) => {\n e.preventDefault();\n\n setIsPending(true);\n setError(null);\n\n const [guest, err] = await world.createGuest(galleryName, {\n full_name: fullName,\n phone: phone,\n });\n\n setIsPending(false);\n\n if (err) {\n setError(err);\n return;\n }\n\n router.push(\"/dashboard/[[...all]]\", `/dashboard/galleries/${galleryID}`);\n }\n\n return {\n onChange,\n onSubmit,\n error,\n isPending,\n };\n}\n\nexport default useInvite;\n","import React from \"react\";\nimport styles from \"./Invite.module.scss\";\nimport TextInput from \"../TextInput\";\nimport { Submit } from \"../Submit\";\nimport { LogoContainer } from \"../LogoContainer\";\nimport { ActionLink } from \"../ActionLink\";\nimport Gallery from \"../../types/Gallery\";\nimport useInvite from \"../../hooks/useInvite\";\nimport World from \"../../world\";\n\ntype Props = {\n world: World;\n gallery: Gallery;\n}\nexport const InviteGuestsForm = (props: Props) => {\n const {\n onChange,\n onSubmit,\n isPending,\n error\n } = useInvite(props.world, props.gallery.name, props.gallery.id());\n\n return (\n
    \n \n\n

    Invite Your Guest

    \n\n

    Your guest will receive a text message from your gallery's phone number with a link to your gallery

    \n\n {error && (\n (error.status === 409 ? (\n

    Contact already added to gallery

    \n ) : (\n

    {error.message}

    \n ))\n )}\n\n
    \n \n\n \n\n \n\n \n cancel\n \n \n
    \n );\n};\n\nexport default InviteGuestsForm;\n","import * as React from \"react\";\n\nimport World from \"../../world\";\nimport Gallery from \"../../types/Gallery\";\nimport InviteGuestsForm from \"./View\";\n\nexport interface Props {\n gallery_name: string;\n world: World;\n}\n\nexport interface State {\n gallery: Gallery;\n}\n\nexport default class InviteFormController extends React.Component {\n constructor(props: Props) {\n super(props);\n\n const gallery = props.world.galleries[props.gallery_name];\n\n if (gallery) {\n this.state = {\n gallery,\n };\n return;\n }\n\n props.world.getGallery(props.gallery_name)\n .then((err) => {\n if (err) {\n throw err;\n }\n const gallery = props.world.galleries[props.gallery_name];\n\n this.setState({\n gallery,\n });\n })\n .catch((err: Error) => {\n // TODO error page\n console.log(err);\n });\n }\n\n render() {\n if (!this.state.gallery) {\n // TODO spinner\n return;\n }\n\n return (\n \n );\n }\n}\n","import _ from \"lodash\";\nimport { useState } from \"react\";\nimport { useRouter } from \"next/router\";\nimport World from \"../world\";\nimport Gallery from \"../types/Gallery\";\nimport { CoHost, MaybeAPIErr } from \"../api\";\n\ntype CoHostHook = {\n onChangeEmail: (e: React.FormEvent) => void;\n onSubmitAdd: (e: React.FormEvent) => Promise;\n onRemove: (email: string) => Promise;\n err: string;\n isPending: boolean;\n coHosts: Array;\n}\n\nfunction useCoHosts(world: World, gallery: Gallery, initialCoHosts: Array): CoHostHook {\n const [email, setEmail] = useState(\"\");\n const [err, setErr] = useState(\"\");\n const [isPending, setIsPending] = useState(false);\n const [coHosts, setCoHosts] = useState(initialCoHosts);\n const router = useRouter();\n\n const onChangeEmail = (e: React.FormEvent) => {\n setEmail(e.currentTarget.value);\n };\n\n const onSubmitAdd = async (e: React.FormEvent) => {\n e.preventDefault();\n\n setIsPending(true);\n\n const err = await world.addCoHost(gallery.name, email);\n\n setIsPending(false);\n\n if (err) {\n setErr(err.message)\n return;\n }\n\n setCoHosts(_.concat(coHosts, {email}));\n // router.push(\"/dashboard/[[...all]]\", `/dashboard/galleries/${gallery.id()}`);\n };\n\n const onRemove = async (email: string): Promise => {\n const err = await world.removeCoHost(gallery.name, email);\n if (err) {\n console.log(err);\n return;\n }\n const nextCoHosts = _.filter(coHosts, (coHost) => {\n return coHost.email !== email;\n });\n setCoHosts(nextCoHosts);\n return;\n }\n\n return {\n onRemove,\n err,\n isPending,\n onChangeEmail,\n onSubmitAdd,\n coHosts,\n }\n};\n\nexport default useCoHosts;\n","import styles from \"./CoHostList.module.scss\";\nimport React from \"react\";\nimport _ from \"lodash\";\nimport { CoHost } from \"../../api\";\n\nexport interface CoHostListProps {\n cohosts: Array;\n onRemove: (email: string) => Promise;\n}\n\nconst CoHostItem = (coHost: CoHost, onRemove: (email: string) => Promise) => {\n const remove = () => {\n if (confirm(`Remove ${coHost.email}?`)) {\n onRemove(coHost.email);\n }\n };\n return (\n
  • \n {coHost.email}\n X\n
  • \n );\n}\n\n\nexport const CoHostList = (props: CoHostListProps) => {\n if (props.cohosts.length == 0) {\n return null;\n }\n\n return (\n
    \n

    Current CoHosts

    \n
      \n {_.map(props.cohosts, (coHost: CoHost) => {return CoHostItem(coHost, props.onRemove);})}\n
    \n
    \n );\n}\n\nexport default CoHostList;\n","import React from \"react\";\nimport styles from \"./CoHost.module.scss\";\nimport TextInput from \"../TextInput\";\nimport { Submit } from \"../Submit\";\nimport { LogoContainer } from \"../LogoContainer\";\nimport { ActionLink } from \"../ActionLink\";\nimport Gallery from \"../../types/Gallery\";\nimport useCoHosts from \"../../hooks/useCoHosts\";\nimport World from \"../../world\";\nimport { CoHost } from \"../../api\";\nimport CoHostList from \"../CoHostList\";\n\ntype Props = {\n world: World;\n gallery: Gallery;\n cohosts: Array;\n}\nexport const AddCoHostForm = (props: Props) => {\n const {\n onChangeEmail,\n onSubmitAdd,\n onRemove,\n isPending,\n err,\n coHosts,\n } = useCoHosts(props.world, props.gallery, props.cohosts);\n\n return (\n
    \n \n\n

    Add a CoHost

    \n\n

    CoHosts will have full control over this gallery

    \n\n {err && (\n

    {err}

    \n )}\n\n
    \n \n\n \n\n \n cancel\n \n \n\n \n \n
    \n \n return to gallery home\n \n
    \n
    \n );\n};\n\nexport default AddCoHostForm;\n","import * as React from \"react\";\n\nimport World from \"../../world\";\nimport Gallery from \"../../types/Gallery\";\nimport View from \"./View\";\nimport { CoHost } from \"../../api\";\n\nexport interface Props {\n gallery_name: string;\n world: World;\n}\n\nexport interface State {\n gallery: Gallery;\n cohosts: Array | null;\n}\n\nexport default class CoHostsController extends React.Component {\n constructor(props: Props) {\n super(props);\n\n props.world.listCoHosts(props.gallery_name)\n .then((cohosts) => {\n this.setState({\n cohosts,\n });\n });\n\n const gallery = props.world.galleries[props.gallery_name];\n\n this.state = {\n gallery,\n cohosts: null,\n };\n if (gallery) {\n return;\n }\n\n props.world.getGallery(props.gallery_name)\n .then((resp) => {\n if (resp[1]) {\n throw resp[1];\n }\n const gallery = props.world.galleries[props.gallery_name];\n\n this.setState({\n gallery,\n });\n })\n .catch((err: Error) => {\n // TODO error page\n console.log(err);\n });\n }\n\n render() {\n if (!this.state.gallery || !this.state.cohosts) {\n // TODO spinner\n return null;\n }\n\n return (\n \n );\n }\n}\n","import _ from \"lodash\";\nimport React, { useEffect, useState } from \"react\";\nimport { useRouter } from \"next/router\";\nimport Layout from \"../Layout\";\nimport RegistrationForm from \"../RegistrationForm\";\nimport NewGallery from \"../../components/NewGallery\";\nimport LoginForm from \"../../components/LoginForm\";\nimport styles from \"./Dashboard.module.scss\";\nimport Account from \"../Account\";\nimport GalleryDetail from \"../GalleryDetail\";\nimport EditGalleryForm from \"../EditGalleryForm\";\nimport ManageTacs from \"../ManageTacs\";\nimport ResetPassword from \"../ResetPassword\";\nimport ChangePassword from \"../ChangePassword\";\nimport Invite from \"../Invite\";\nimport CoHosts from \"../CoHosts\";\n\nimport World from \"../../world\";\n\ntype Props = {\n world: World;\n stripe_pub_key: string;\n uploads_base_url: string;\n};\n\nconst Dashboard = (props: Props) => {\n const [authenticated, setAuthenticated] = useState(false);\n const [galleryName, setGalleryName] = useState('');\n const router = useRouter();\n const path = router.asPath.replace(/\\?.*/, \"\")\n\n const onLoginSuccess = () => {\n if (_.size(props.world.galleries) === 0) {\n router.push(\"/dashboard/[[...all]]\", \"/dashboard/new-gallery\");\n } else {\n router.push(\"/dashboard/[[...all]]\", \"/dashboard\");\n }\n setAuthenticated(true);\n }\n\n const onLogout = async () => {\n setAuthenticated(false);\n props.world.logout();\n }\n\n // This is to fix the dev env. For some reason if the authenticated state\n // is set to true immediately then the HTML is a jumble of different\n // components.\n // TODO this causes the login screen to flash.\n useEffect(() => {\n if (window.localStorage.auth) {\n onLoginSuccess();\n }\n }, []);\n\n // This is to get the actual name of the gallery. When cohosts log in the\n // galllery name using their host ID is not the actual gallery name, so we\n // have to fetch the gallery using that as the initial name and then the\n // API will return the gallery with the correct name. Subcomponents of the\n // dashboard break for cohosts without this.\n useEffect(() => {\n\n\t const rx = new RegExp(/^\\/dashboard\\/galleries\\/(\\d+)/);\n\t const matches = rx.exec(path);\n\n\t\tif (!matches) {\n\t\t\treturn;\n\t\t}\n\t\tif (!matches[1]) {\n\t\t\treturn;\n\t\t}\n\t\tif (!props.world.host) {\n\t\t\treturn;\n\t\t}\n\t const galName = (`hosts/${props.world.host.id()}/galleries/${matches[1]}`);\n\n\t // galleryName will be set if you've visited another, possibly\n\t // different, gallery\n\t if (galleryName && (galleryName == galName)) {\n\t\t return;\n\t }\n\t (async function() {\n\t\t const [name, err] = await props.world.getGallery(galName);\n\t\t if (err) {\n\t\t\t console.log(err);\n\t\t\t return;\n\t\t }\n\t\t setGalleryName(name);\n\t }())\n });\n\n if (!authenticated) {\n if (typeof window === \"undefined\") {\n return (\n \n \n \n );\n }\n switch(path) {\n case \"/dashboard/create-account\":\n return (\n \n \n \n );\n case \"/dashboard/reset-password\":\n return (\n \n \n \n );\n case \"/dashboard/change-password\":\n return (\n \n \n \n );\n default:\n return (\n \n \n \n );\n }\n }\n\n switch (path) {\n case \"/dashboard\":\n case \"/dashboard/\":\n case \"/dashboard/index.html\":\n return (\n \n \n \n );\n case \"/dashboard/new-gallery\":\n return (\n \n \n \n );\n default:\n if (galleryName) {\n if (_.endsWith(path, \"edit\")) {\n return (\n \n \n \n );\n }\n if (_.endsWith(path, \"tacs\")) {\n return (\n \n \n \n );\n }\n if (_.endsWith(path, \"invite\")) {\n return (\n \n \n \n );\n }\n if(_.endsWith(path, \"cohosts\")) {\n return (\n \n \n \n );\n }\n\n\n return (\n \n \n \n );\n }\n\n return (\n \n \n \n );\n }\n}\n\nexport default Dashboard;\n","import React, { useState } from \"react\";\nimport { useRouter } from \"next/router\";\nimport Head from \"next/head\";\nimport Dashboard from \"../../components/Dashboard\";\n\nimport { PubNub } from \"../../api/Realtime\";\nimport API from \"../../api\";\nimport World from \"../../world\";\n\nimport * as Sentry from '@sentry/nextjs';\n\nconst pubNubSubKey = process.env.NEXT_PUBLIC_PUB_NUB_SUB_KEY;\nconst pn = new PubNub(pubNubSubKey);\nconst api = new API(pn);\nconst world = new World(api, {\n short_domain: process.env.NEXT_PUBLIC_SHORT_DOMAIN,\n});\nconst stripePubKey = process.env.NEXT_PUBLIC_STRIPE_PUB_KEY;\nconst uploadsBaseURL = process.env.NEXT_PUBLIC_UPLOADS_BASE_URL;\n\nconst Page = () => {\n return (\n <>\n \n Dashboard - TacBoard\n \n \n \n\n \n \n );\n}\n\nexport default Page;\n","import * as _ from \"lodash\";\n\nimport Tac from \"./Tac\";\n\nexport default class Features {\n public static is(name: string): boolean {\n return /^hosts\\/\\d+\\/galleries\\/\\d+\\/features$/.test(name);\n }\n\n public static fromData(data: any): Features {\n if (!data) {\n throw new Error(\"Features.fromData requires data\");\n }\n\n if (!_.isUndefined(data.phone) && !_.isBoolean(data.phone)) {\n throw new Error(\"Features.fromData data.phone should be a boolean\");\n }\n if (!_.isUndefined(data.email) && !_.isBoolean(data.email)) {\n throw new Error(\"Features.fromData data.email should be a boolean\");\n }\n if (!_.isUndefined(data.hashtag) && !_.isBoolean(data.hashtag)) {\n throw new Error(\"Features.fromData data.hashtag should be a boolean\");\n }\n if (!_.isUndefined(data.upload) && !_.isBoolean(data.upload)) {\n throw new Error(\"Features.fromData data.upload should be a boolean\");\n }\n if (!_.isUndefined(data.optimize_images) && !_.isBoolean(data.optimize_images)) {\n throw new Error(\"Features.fromData data.optimize_images should be a boolean\");\n }\n if (!_.isUndefined(data.analyze_iamges) && !_.isBoolean(data.analyze_images)) {\n throw new Error(\"Features.fromData data.analyze_images should be a boolean\");\n }\n if (!_.isUndefined(data.max_adult) && !_.isNumber(data.max_adult)) {\n throw new Error(\"Features.fromData data.max_adult should be a number\");\n }\n if (!_.isUndefined(data.max_spoof) && !_.isNumber(data.max_spoof)) {\n throw new Error(\"Features.fromData data.max_spoof should be a number\");\n }\n if (!_.isUndefined(data.max_violence) && !_.isNumber(data.max_violence)) {\n throw new Error(\"Features.fromData data.max_violence should be a number\");\n }\n if (!_.isUndefined(data.max_medical) && !_.isNumber(data.max_medical)) {\n throw new Error(\"Features.fromData data.max_medical should be a number\");\n }\n if (!_.isUndefined(data.vulgar_check) && !_.isBoolean(data.vulgar_check)) {\n throw new Error(\"Features.fromData data.vulgar_check should be a boolean\");\n }\n if (!_.isUndefined(data.sentiment_check) && !_.isBoolean(data.sentiment_check)) {\n throw new Error(\"Features.fromData data.sentiment_check should be a boolean\");\n }\n if (!_.isUndefined(data.min_sentiment) && !_.isNumber(data.min_sentiment)) {\n throw new Error(\"Features.fromData data.min_sentiment should be a number\");\n }\n if (!_.isUndefined(data.download_all) && !_.isNumber(data.download_all)) {\n throw new Error(\"Features.fromData data.download_all should be a boolean\");\n }\n\n return new Features(\n data.phone,\n data.email,\n data.hashtag,\n data.upload,\n data.optimize_images,\n data.analyze_images,\n data.max_adult,\n data.max_spoof,\n data.max_violence,\n data.max_medical,\n data.vulgar_check,\n data.sentiment_check,\n data.min_sentiment,\n data.download_all,\n );\n }\n\n // ingress\n public phone: boolean;\n public email: boolean;\n public hashtag: boolean;\n public upload: boolean;\n\n // image\n public optimize_images: boolean;\n public analyze_images: boolean;\n public max_adult: number;\n public max_spoof: number;\n public max_violence: number;\n public max_medical: number;\n public min_original_image_size: number;\n\n // note\n public vulgar_check: boolean;\n public sentiment_check: boolean;\n public min_sentiment: number;\n\n // egress\n public download_all: boolean;\n\n constructor (\n phone?: boolean,\n email?: boolean,\n hashtag?: boolean,\n upload?: boolean,\n optimize_images?: boolean,\n analyze_images?: boolean,\n max_adult?: number,\n max_spoof?: number,\n max_violence?: number,\n max_medical?: number,\n vulgar_check?: boolean,\n sentiment_check?: boolean,\n min_sentiment?: number,\n download_all?: boolean,\n ) {\n this.phone = _.isBoolean(phone) ? phone : true;\n this.email = _.isBoolean(email) ? email : false;\n this.hashtag = _.isBoolean(hashtag) ? hashtag : false;\n this.upload = _.isBoolean(upload) ? upload : true;\n this.optimize_images = _.isBoolean(optimize_images) ? optimize_images : true;\n this.analyze_images = _.isBoolean(analyze_images) ? analyze_images : true;\n this.max_adult = _.isNumber(max_adult) ? max_adult : 3;\n this.max_spoof = _.isNumber(max_spoof) ? max_spoof : 3;\n this.max_violence = _.isNumber(max_violence) ? max_violence : 3;\n this.max_medical = _.isNumber(max_medical) ? max_medical : 3;\n this.vulgar_check = _.isBoolean(vulgar_check) ? vulgar_check : true;\n this.sentiment_check = _.isBoolean(sentiment_check) ? sentiment_check : true;\n this.min_sentiment = _.isNumber(min_sentiment) ? min_sentiment : -0.5;\n this.download_all = _.isBoolean(download_all) ? download_all : true;\n\n this.min_original_image_size = 40000;\n }\n\n public isLowRes(tac: Tac): boolean {\n if (tac.image && tac.image.original && tac.image.original.size) {\n return tac.image.original.size < this.min_original_image_size;\n }\n return false;\n }\n\n public quarantine(tac: Tac): boolean {\n if (tac.image && tac.image.analysis) {\n if (tac.image.analysis.adult > this.max_adult) {\n return true;\n }\n if (tac.image.analysis.spoof > this.max_spoof) {\n return true;\n }\n if (tac.image.analysis.violence > this.max_violence) {\n return true;\n }\n if (tac.image.analysis.medical > this.max_medical) {\n return true;\n }\n }\n if (this.isLowRes(tac)) {\n return true;\n }\n if (tac.note && tac.note.sentiment) {\n if (tac.note.sentiment.score < this.min_sentiment) {\n return true;\n }\n }\n if (tac.note && tac.note.vulgar && tac.note.vulgar.matches && tac.note.vulgar.matches.length) {\n return true\n }\n // magic for tour until we get textual analysis\n if (tac.note && tac.note.text === \"Gross, what an ugly dress\") {\n return true;\n }\n\n return false;\n }\n}\n","\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/dashboard/[[...all]]\",\n function () {\n return require(\"private-next-pages/dashboard/[[...all]].tsx\");\n }\n ]);\n ","// extracted by mini-css-extract-plugin\nmodule.exports = {\"bg-img\":\"Account_bg-img__3Lw5B\",\"account\":\"Account_account__hxpfG\",\"logoContainer\":\"Account_logoContainer__2C6A7\",\"logo\":\"Account_logo__2iwPF\",\"editable\":\"Account_editable__39dlv\",\"action-link\":\"Account_action-link__1AHWQ\",\"new-gallery-btn-container\":\"Account_new-gallery-btn-container__qmnHn\",\"userguide-container\":\"Account_userguide-container__3aBCL\",\"logout-container\":\"Account_logout-container__3vJ_G\",\"app-footer\":\"Account_app-footer__HJvoe\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"cohost-list-container\":\"CoHostList_cohost-list-container__Zqxh4\",\"cohost-remove\":\"CoHostList_cohost-remove__3LcnS\",\"cohost-item\":\"CoHostList_cohost-item__ZTUPN\",\"action-link\":\"CoHostList_action-link__1ZNAb\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"cohost-form\":\"CoHost_cohost-form__1QrwZ\",\"form\":\"CoHost_form__2bB3C\",\"return-home-link\":\"CoHost_return-home-link__3M7iW\",\"logo\":\"CoHost_logo__1mlxU\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"dashboard\":\"Dashboard_dashboard__1Mt6V\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"picker\":\"EditGalleryForm_picker__2ud2Q\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"fullform\":\"Form_fullform__24w36\",\"form-error\":\"Form_form-error__1KxSK\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"browse-bd-button\":\"GalleryDetail_browse-bd-button__2b1St\",\"circle\":\"GalleryDetail_circle__2-_Ir\",\"blinker\":\"GalleryDetail_blinker__1KDfd\",\"gallery-detail\":\"GalleryDetail_gallery-detail__3_uSk\",\"gallery-identity-container\":\"GalleryDetail_gallery-identity-container__2FPNS\",\"gallery-img-container\":\"GalleryDetail_gallery-img-container__3I8W_\",\"gallery-detail-data\":\"GalleryDetail_gallery-detail-data__a4nbi\",\"gallery-name-date-container\":\"GalleryDetail_gallery-name-date-container__2Zo8D\",\"date-container\":\"GalleryDetail_date-container__1YpIX\",\"gallery-detail-link\":\"GalleryDetail_gallery-detail-link__1vaE5\",\"edit-gallery-details\":\"GalleryDetail_edit-gallery-details__3m4rz\",\"manage-cohosts\":\"GalleryDetail_manage-cohosts__233ur\",\"gallery-identities-box\":\"GalleryDetail_gallery-identities-box__1qUci\",\"gallery-identity-container-column\":\"GalleryDetail_gallery-identity-container-column__q31uD\",\"temp-hide\":\"GalleryDetail_temp-hide__z9wgh\",\"gallery-detail-label\":\"GalleryDetail_gallery-detail-label__-l13h\",\"editable\":\"GalleryDetail_editable__2pqxj\",\"action-link\":\"GalleryDetail_action-link__1mv7c\",\"manage-display-container\":\"GalleryDetail_manage-display-container__1tEj2\",\"icon-circle\":\"GalleryDetail_icon-circle__3LArk\",\"secondary-actions-container\":\"GalleryDetail_secondary-actions-container__2g3A3\",\"secondary-action-box\":\"GalleryDetail_secondary-action-box__3jsAO\",\"userguide-container\":\"GalleryDetail_userguide-container__8OPef\",\"downloadPrepMsgOverlay\":\"GalleryDetail_downloadPrepMsgOverlay__2tGll\",\"downloadPrepMsg\":\"GalleryDetail_downloadPrepMsg__1LTnE\",\"gallery-identity-link-column-dt\":\"GalleryDetail_gallery-identity-link-column-dt__3Zh3B\",\"gallery-detail-link-dt\":\"GalleryDetail_gallery-detail-link-dt__3ivsS\",\"page-overview-link-column-dt\":\"GalleryDetail_page-overview-link-column-dt__3Musi\",\"share-admin-btn-container\":\"GalleryDetail_share-admin-btn-container__17YLC\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"gallery-list-container\":\"GalleryList_gallery-list-container__1JSUh\",\"gallery-item\":\"GalleryList_gallery-item__HObuc\",\"action-link\":\"GalleryList_action-link__N_Txk\",\"bi-queue-icon\":\"GalleryList_bi-queue-icon__3vcdz\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"invite-form\":\"Invite_invite-form__dCJYA\",\"form\":\"Invite_form__UX5KG\",\"logo\":\"Invite_logo__1C0s5\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"layout\":\"Layout_layout__3guix\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"manage-tacs\":\"ManageTacs_manage-tacs__3V_wn\",\"logo-container\":\"ManageTacs_logo-container__2nUKB\",\"logo\":\"ManageTacs_logo__2meri\",\"manage-tacs__list\":\"ManageTacs_manage-tacs__list__1rZ9h\",\"manage-tacs__item\":\"ManageTacs_manage-tacs__item__2mMgD\",\"manage-tacs__guest\":\"ManageTacs_manage-tacs__guest__1LbSE\",\"manage-tacs__item--quarantined\":\"ManageTacs_manage-tacs__item--quarantined__NhSWj\",\"manage-tacs__low-res--quarantined\":\"ManageTacs_manage-tacs__low-res--quarantined__n1LLi\",\"manage-tacs__label\":\"ManageTacs_manage-tacs__label__2ri9e\",\"manage-tacs__lower-container\":\"ManageTacs_manage-tacs__lower-container__3R56K\",\"manage-tacs__icon-container\":\"ManageTacs_manage-tacs__icon-container__1lLu7\",\"block-user-container\":\"ManageTacs_block-user-container__2KR4T\",\"block-sender__icon\":\"ManageTacs_block-sender__icon__2WAOm\",\"manage-tacs__icon\":\"ManageTacs_manage-tacs__icon__x5qwd\",\"icon-secondary-note\":\"ManageTacs_icon-secondary-note__1zy8x\",\"manage-tacs__note\":\"ManageTacs_manage-tacs__note__3ezJi\",\"manage-tacs__signature\":\"ManageTacs_manage-tacs__signature__m0KX3\",\"manage-tacs__image\":\"ManageTacs_manage-tacs__image__2DWjV\",\"manage-tacs-tour\":\"ManageTacs_manage-tacs-tour__cUoCo\",\"note-text\":\"ManageTacs_note-text__1eRuF\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"new-gallery-form\":\"NewGalleryForm_new-gallery-form__2Rd5A\",\"form\":\"NewGalleryForm_form__GUUoO\",\"date-note\":\"NewGalleryForm_date-note__1MXIU\",\"new-gallery-form__cancel\":\"NewGalleryForm_new-gallery-form__cancel__1OFq8\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"registration-form\":\"RegistrationForm_registration-form__1rLDt\",\"form\":\"RegistrationForm_form__3BilV\",\"logo\":\"RegistrationForm_logo__3_hEq\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"sent\":\"ResetPassword_sent__1ftEN\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"payment-form\":\"Stripe_payment-form__1bRff\",\"form\":\"Stripe_form__1Rb7A\",\"payment-icons\":\"Stripe_payment-icons__3Dnq5\",\"payment-form__cancel\":\"Stripe_payment-form__cancel__2R2DW\"};"],"names":["Img","props","renditions","length","srcset","_","rendition","url","width","className","src","sizes","size","srcSet","join","alt","style","classNames","classes","styles","children","useRegister","world","onSuccess","discount","onChange","onSubmit","isPending","error","useEffect","window","fbq","message","color","name","placeholder","help","type","label","is_pending","secondary","to","useState","fullName","setFullName","email","setEmail","password","setPassword","setError","setIsPending","useRouter","e","currentTarget","value","preventDefault","register","full_name","err","gtag","em","host","eventID","id","LogoContainer","is_trial","TextInput","nocomplete","required","Submit","ActionLink","onClick","onCancel","Step","Stripe","state","stripe","loadStripe","stripe_pub_key","createPaymentIntent","then","pi","setState","payment_intent_client_secret","client_secret","price","amount","elements","confirmCardPayment","payment_method","card","getElement","CardElement","payload","paymentIntent","this","dollars","text","Math","floor","toFixed","Elements","ElementsConsumer","handleSubmit","handleChange","React","router","displayName","setDisplayName","date","setDate","step","setStep","setErr","handleSubmitStep1","test","handlePaid","paymentIntentID","dollarsPaid","newGallery","display_name","gallery","currency","img","document","createElement","height","access_token","body","appendChild","script","defer","push","stripePubKey","GalleryItem","split","isTrial","galleries","setGalleries","active","fetchAllGalleries","localStorage","setItem","JSON","stringify","href","onLogout","GalleryIcon","version","x","y","viewBox","enableBackground","fill","points","d","ScheduleMessageIcon","cx","cy","rx","ry","DisplayIcon","cursor","r","GuestsIcon","ManageQueueIcon","transform","stroke","strokeWidth","strokeMiterlimit","UploadIcon","SignShopIcon","DownloadingIcon","xmlns","attributeName","begin","dur","values","calcMode","repeatCount","fillOpacity","GalleryDownloadIcon","parts","parseInt","avatar","is_super_host","phone","location","pathname","short_url","replace","tourGallery","live_url","tourLive","tourQueue","upload_url","is_archiving","onArchive","GalleryDetailController","archive","console","log","tour","has_tacced","has_experienced_live","has_managed_queue","shortURL","isSuperHost","hostID","host_id","protocol","prettyPhone","handleArchive","setURL","files","formData","FormData","append","getUploadURL","postURL","fetch","method","response","json","status","success","result","variants","useUpload","newAvatar","onChangeAvatar","isAvatarPending","patch","updateGallery","onChangeDisplayName","onChangeDate","EditGalleryForm","useUpdateGallery","form","defaultValue","setGallery","getGallery","DeleteTacIcon","ApproveTacIcon","BlockUserIcon","display","ManageTacItem","classnames","is_quarantined","is_low_res","guest","tac","image","optimized","original","note","onBlock","onDelete","onApprove","ManageTacs","gallery_display_name","tacs","blocked","ManageTacsController","logout","features","Features","unlisten","listen","gallery_name","guests","listGalleryGuests","listGalleryTacs","fetchAllTacs","unwatch","watch","is_dead","createGuest","createTac","updateHost","quarantineAll","moderation","isQuarantined","quarantine","hasQuarantined","isLowRes","deleteTac","finishTour","blockGuest","approveTac","ResetPasswordFormController","resetPassword","sent","ChangePasswordFormController","changePassword","secret","query","qs","search","substring","rt","galleryName","galleryID","setPhone","useInvite","InviteFormController","initialCoHosts","coHosts","setCoHosts","onSubmitAdd","addCoHost","onRemove","removeCoHost","nextCoHosts","coHost","onChangeEmail","cohosts","confirm","CoHostItem","useCoHosts","CoHostsController","listCoHosts","resp","authenticated","setAuthenticated","setGalleryName","path","asPath","onLoginSuccess","auth","matches","RegExp","exec","galName","Layout","RegistrationForm","LoginForm","NewGallery","pn","PubNub","process","api","API","World","short_domain","uploadsBaseURL","env","NEXT_PUBLIC_UPLOADS_BASE_URL","content","rel","uploads_base_url","hashtag","upload","optimize_images","analyze_images","max_adult","max_spoof","max_violence","max_medical","vulgar_check","sentiment_check","min_sentiment","download_all","min_original_image_size","analysis","adult","spoof","violence","medical","sentiment","score","vulgar","data","Error","analyze_iamges","__NEXT_P","module","exports"],"sourceRoot":""}